POV-Ray : Newsgroups : povray.general : isosurface function conversion : Re: isosurface function conversion Server Time
30 Jul 2024 12:31:44 EDT (-0400)
  Re: isosurface function conversion  
From: Alain
Date: 8 Feb 2009 17:34:26
Message: <498f5df2$1@news.povray.org>
[GDS|Entropy] nous illumina en ce 2009-02-08 05:46 -->
> Greetings,
> 
> Going through my old files, I found an isosurface that I used to produce a 
> very interesting shape in an old version of MegaPov I think, but using the 
> functions.inc and f_noise3d I get literally nothing. I've tried installing 
> old versions of pov and megapov, but I can't seem to locate the correct one, 
> maybe someone will recognize the syntax and be able to convert the 
> following:
> 
> #declare GridCubeOn = true;
> #declare use_photons = false;
> 
> #if (GridCubeOn)
> #declare Foo =
>  function {(noise3d(8*x, 12*y, .01)*noise3d(12*x, .01, 8*z)*noise3d(.01, 
> 8*y, 12*z))/3}
> #declare Foo1 =
>       function {noise3d(8*x, 12*y, .01)/3*noise3d(12*x, 8*y, 
> .01)/3*noise3d(8*y, 12*z, .01)/3}
> #declare Foo2 =
>  function {noise3d(8*x, 12*y, .01)/3*noise3d(12*x, 8*y, .01)/3*noise3d(8*y, 
> 12*z, .01)/3}
> 
> #declare GridCube =
>  isosurface {
>   function {
>    Foo
>    }
>    threshold 0.0001
>    scale 1.6
>    bounded_by {
>     box {
>      -4, 4
>      }
>     }
>     texture {
>      pigment {color rgb 0}
>     }
>      #if (use_photons)
>      photons {
>       separation 0.02*phd
>       #if(refl)
>       reflection on
>       #end
>       ignore_photons
>       }
>       #end
>      }
> 
> #declare GridCube1 =
>  isosurface {
>   function {
>    Foo1
>    }
>    threshold 0.0001
>    scale 1.6
>    bounded_by {
>     box {
>      -4, 4
>      }
>     }
>     texture {
>      pigment {color rgb 0}
>      }
>      #if (use_photons)
>      photons {
>       separation 0.02*phd
>       #if(refl)
>       reflection on
>       #end
>       ignore_photons
>       }
>       #end
>      }
> 
> #declare GridCube2 =
>  isosurface {
>   function {
>    Foo2
>    }
>    threshold 0.0001
>    scale 1.6
>    bounded_by {
>     box {
>      -4, 4
>      }
>     }
>     texture {
>      pigment {color rgb 0}
>     }
>      #if (use_photons)
>      photons {
>       separation 0.02*phd
>       #if(refl)
>       reflection on
>       #end
>       ignore_photons
>       }
>       #end
>       rotate 90*y
>      }
> 
> object {
>  GridCube
>   scale 1000
>   translate <0,0,5000>
>   }
> 
> object {
>  GridCube1
>   scale 1000
>   translate <2000,0,5000>
>   }
> 
> object {
>  GridCube2
>   scale 1000
>   translate <-2000,0,5000>
>   }
> 
> #debug "\nFinished Parse Of GridCube:"
> #end 
> 
> 
I can't help you for your function.

I can help with the pfotons part:
Remove the photons from the finish. Add a photons{} block to the object.

The photons block should be:
photons{target reflection on}

Just the abcence of a photons block prevent the shootong of photons toward the 
object.


You also need this in the global_settings:
#if(use_photons)photons{spacing 0.02*phd autostop 0}#end

The presence of a photons block in the light_source is optional only needed if 
you want to sidable all or some of the photons treatment from that light_source.

-- 
Alain
-------------------------------------------------
You know you've been raytracing too long when you can describe in perfect, 
legal, pov syntax, how to re-create everything in your computer room using 
primitives and csg operations.
fish-head


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.